Skip to content

解析公告

欢迎回到你的编码之旅。 是时候使用你从之前的教程中获得的技能来增强你的游戏体验了。

在游戏过程中,你可能会注意到终端中出现的公告。这些公告是游戏向玩家传达重要事件的方式。然而,这些消息有时看起来很神秘,或者你可能会发现自己得反复检查收件箱才能获取更多详细信息。

直接从你的终端访问这些信息不是很方便吗? 嗯,有一种方法可以做到这一点!

通过使用 handlers,你可以创建一个自主代理来为你读取这些信息,标志着从简单的机器人到能够直接解析游戏事件并对其采取行动的实体的进化。

设置开发环境

首先在你的首选目录中创建一个名为 bot.lua 的新文件。

理想情况下,该文件应放置在 player 进程的同一目录中,以简化代码的加载。 否则,你需要使用相对路径来访问该文件。

编写代码

让我们深入研究下其中的逻辑。

aos 中的每个handler都需要三个关键信息:

  • name:handler 的唯一名称
  • pattern: handler 识别的模式,触发其执行
  • handle:模式匹配时执行的操作

以下是编写用于打印公告详细信息的 handler 的方法:

lua
-- 直接在终端中打印游戏公告的handler。
Handlers.add(
  "PrintAnnouncements",
  Handlers.utils.hasMatchingTag("Action", "Announcement"),
  function (msg)
    print(msg.Event .. ": " .. msg.Data)
  end
)

在本例中,handler的名称是 "PrintAnnouncements"。 它使用特殊的内置实用程序(hasMatchingTags)检查传入消息是否已被标记为公告。 如果为 true,则 handler 将打印事件和数据,则直接显示公告的标题和描述。

注意:一旦消息被 handled,它将从你的 收件箱 中丢弃。

加载和测试

现在,让我们在游戏中实现这一点。

导航到你的 aos 玩家终端并进入游戏会话。

用下面的命令来加载 bot.lua 文件以激活handler:

lua
.load bot.lua

现在,你将看到游戏公告直接出现在你的终端中,提供实时展示,且无需手动查看收件箱。

恭喜! 你刚刚迈出了在 aos 上构建机器人的第一步。 但让我们继续努力为其添加更多功能 🌐